// 面包屑导航逻辑封装
import { onMounted, ref } from 'vue';
import { getTopCateGoryAPI } from '@/apis/category';
import { onBeforeRouteUpdate, useRoute } from 'vue-router';

export function useCateGoryData() {

  const categoryData = ref({})
  const route = useRoute()
  const getCategory = async (id = route.params.id) => {
    // 如何在setup中获取路由参数 useRoute() -> route 等价于this.$route
    const res = await getTopCateGoryAPI(id)
    categoryData.value = res.result
  }

  onMounted(() => getCategory())

  // onMounted(() => getCategory())只在加载完成是搭建一次，需要解决路由缓存问题
  // 方法一：在Layout/index二级路由出口添加Key,破坏复用机制，强制销毁重建
  /* <RouterView :key="$route.fullPath"/> */

  // 方法二：路由参数变化时，把分类接口重新发送一次
  onBeforeRouteUpdate((to) => {
    // to是目标路由对象
    getCategory(to.params.id)
  })

  return {
    categoryData
  }
}